Speech coding is the process of obtaining a compact representation of voice signals for efficient transmission over band-limited wired and wireless channels and/or storage. Today, speech coders have become essential components in telecommunications and in the multimedia infrastructure. Commercial systems that rely on efficient speech coding include cellular communication, voice over internet protocol (VOIP), videoconferencing, electronic toys, archiving, and digital simultaneous voice and data (DSVD), as well as numerous PC-based games and multimedia applications.
Being a continuous-time signal, speech may be represented digitally through a process of sampling and quantization. Speech samples are typically quantized using either 16-bit or 8-bit quantization. Like many other signals a speech signal contains a great deal of information that is either redundant (nonzero mutual information between successive samples in the signal) or perceptually irrelevant (information that is not perceived by human listeners). Most telecommunication coders are lossy, meaning that the synthesized speech is perceptually similar to the original but may be physically dissimilar.
A speech coder converts a digitized speech signal into a coded representation, which is usually transmitted in frames. Correspondingly, a speech decoder receives coded frames and synthesizes reconstructed speech.
Many modern speech coders belong to a large class of speech coders known as LPC (Linear Predictive Coders). A few examples of such coders are: the 3GPP FR, EFR, AMR and AMR-WB speech codecs, the 3GPP2 EVRC, SMV and EVRC-WB speech codecs, and various ITU-T codecs such as G.728, G723, G.729, etc.
These coders all utilize a synthesis filter concept in the signal generation process. The filter is used to model the short-time spectrum of the signal that is to be reproduced, whereas the input to the filter is assumed to handle all other signal variations.
A common feature of these synthesis filter models is that the signal to be reproduced is represented by parameters defining the synthesis filter. The term “linear predictive” refers to a class of methods often used for estimating the filter parameters. In LPC based coders, the speech signal is viewed as the output of a linear time-invariant (LTI) system whose input is the excitation signal to the filter. Thus, the signal to be reproduced is partially represented by a set of filter parameters and partly by the excitation signal driving the filter. The advantage of such a coding concept arises from the fact that both the filter and its driving excitation signal can be described efficiently with relatively few bits.
One particular class of LPC based codecs are based on the so-called analysis-by-synthesis (AbS) principle. These codecs incorporate a local copy of the decoder in the encoder and find the driving excitation signal of the synthesis filter by selecting that excitation signal among a set of candidate excitation signals which maximizes the similarity of the synthesized output signal with the original speech signal.
The concept of utilizing such a liner predictive coding and particularly AbS coding has proven to work relatively well for speech signals, even at low bit rates of e.g. 4-12 kbps. However, when the user of a mobile telephone using such coding technique is silent and the input signal comprises the surrounding sounds e.g. noise, the presently known coders have difficulties coping with this situation, since they are optimized for speech signals. A listener on the receiving side may easily get annoyed when familiar background sounds cannot be recognized since they have been “mistreated” by the coder.
So-called swirling causes one of the most severe quality degradations in the reproduced background sounds. This is a phenomenon occurring in relatively stationary background noise sounds such as car noise and is caused by non-natural temporal fluctuations of the power and the spectrum of the decoded signal. These fluctuations in turn are caused by inadequate estimation and quantization of the synthesis filter coefficients and its excitation signal. Usually, swirling becomes less when the codec bit rate increases.
Swirling has been identified as a problem in prior art and multiple solutions to it have been proposed in the literature. One of the proposed solutions is described in U.S. Pat. No. 5,632,004 [1]. According to this patent, during speech inactivity the filter parameters are modified by means of low pass filtering or bandwidth expansion such that spectral variations of the synthesized background sound are reduced. This method was refined in U.S. Pat. No. 5,579,432 [2] such that the described anti-swirling technique is only applied upon detected stationary of the background noise.
One further method addressing the swirling problem is described in U.S. Pat. No. 5,487,087 [3]. This method makes use of a modified signal quantization scheme which matches both the signal itself and its temporal variations. In particular, it is envisioned to use such a reduced-fluctuation quantizer for LPC filter parameters and signal gain parameters during periods of inactive speech.
Signal quality degradations caused by undesired power fluctuations of the synthesized signal are addressed by another set of methods. One of them is described in U.S. Pat. No. 6,275,798 [4] and is also a part of the AMR speech codec algorithm described in 3GPP TS 26.090 [5]. According to it, the gain of at least one component of the synthesized filter excitation signal, the fixed codebook contribution, is adaptively smoothed depending on the stationarity of the LPC short-term spectrum. This method has been evolved in patent EP 1096476 [6] and patent application EP 1688920 [7] where the smoothing further involves a limitation of the gain to be used in the signal synthesis. A related method to be used in LPC vocoders is described in U.S. Pat. No. 5,953,697 [8]. According to it, the gain of the excitation signal of the synthesis filter is controlled such that the maximum amplitude of the synthesized speech just reaches the input speech waveform envelope.
Yet a further class of methods addressing the swirling problem operates as a post processor after the speech decoder. Patent EP 0665530 [9] describes a method which during detected speech inactivity replaces a portion of the speech decoder output signal by a low-pass filtered white noise or comfort noise signal. Similar approaches are taken in various publications that disclose related methods replacing part of the speech decoder output signal with filtered noise.
Scalable or embedded coding, with reference to FIG. 1, is a coding paradigm in which the coding is performed in layers. A base or core layer encodes the signal at a low bit rate, while additional layers, each on top of the other, provide some enhancement relative to the coding, which is achieved with all layers from the core up to the respective previous layer. Each layer adds some additional bit rate. The generated bit stream is embedded, meaning that the bit stream of lower-layer encoding is embedded into bit streams of higher layers. This property makes it possible anywhere in the transmission or in the receiver to drop the bits belonging to higher layers. Such stripped bit stream can still be decoded up to the layer which bits are retained.
The most common scalable speech compression algorithm today is the 64 kbps G.711 A/U-law logarithm PCM codec. The 8 kHz sampled G.711 codec coverts 12 bit or 13 bit linear PCM samples to 8 bit logarithmic samples. The ordered bit representation of the logarithmic samples allows for stealing the Least Significant Bits (LSBs) in a G.711 bit stream, making the G.711 coder practically SNR-scalable between 48, 56 and 64 kbps. This scalability property of the G.711 codec is used in the Circuit Switched Communication Networks for in-band control signaling purposes. A recent example of use of this G.711 scaling property is the 3GPP TFO protocol that enables Wideband Speech setup and transport over legacy 64 kbps PCM links. Eight kbps of the original 64 kbps G.711 stream is used initially to allow for a call setup of the wideband speech service without affecting the narrowband service quality considerably. After call setup, the wideband speech will use 16 kbps of the 64 kbps G.711 stream. Other older speech coding standards supporting open-loop scalability are G.727 (embedded ADPCM) and to some extent G.722 (sub-band ADPCM).
A more recent advance in scalable speech coding technology is the MPEG-4 standard that provides scalability extensions for MPEG4-CELP. The MPE base layer may be enhanced by transmission of additional filter parameter information or additional innovation parameter information. The International Telecommunications Union-Standardization Sector, ITU-T has recently ended the standardization of a new scalable codec G.729.1, nicknamed s G.729.EV. The bit rate range of this scalable speech codec is from 8 kbps to 32 kbps. The major use case for this codec is to allow efficient sharing of a limited bandwidth resource in home or office gateways, e.g. shared xDSL 64/128 kbps uplink between several VOIP calls.
One recent trend in scalable speech coding is to provide higher layers with support for the coding of non-speech audio signals such as music. In such codecs the lower layers employ mere conventional speech coding, e.g. according to the analysis-by-synthesis paradigm of which CELP is a prominent example. As such coding is very suitable for speech only but not that much for non-speech audio signals such as music, the upper layers work according to a coding paradigm, which is used in audio codecs. Here, typically the upper layer encoding works on the coding error of the lower-layer coding.
Another relevant method concerning speech codecs is so-called spectral tilt compensation, which is done in the context of adaptive post filtering of decoded speech. The problem solved by this is to compensate for the spectral tilt introduced by short-term or formant post filters. Such techniques are a part of e.g. the AMR codec and the SMV codec and primarily target the performance of the codec during speech rather than its background noise performance. The SMV codec applies this tilt compensation in the weighted residual domain before synthesis filtering though not in response to an LPC analysis of the residual.
The problem with the above described methods of U.S. Pat. No. 5,632,004, U.S. Pat. No. 5,579,432, and U.S. Pat. No. 5,487,087 is that they assume that the LPC synthesis filter excitation has a white (i.e. flat) spectrum and that all spectral fluctuations causing the swirling problem are related to the fluctuations of the LPC synthesis filter spectra. This is however not the case and especially not if the excitation signal is only coarsely quantized. In that case, spectral fluctuations of the excitation signal have a similar effect as LPC filter fluctuations and need hence to be avoided.
The problem with the methods addressing undesired power fluctuations of the synthesized signal is that they are only addressing one part of swirling problem, but do not provide a solution related to spectral fluctuations. Simulations show that even in combination with the cited methods addressing the spectral fluctuations still not all swirling related signal quality degradations during stationary background sounds can be avoided.
One problem with the methods operating as a post processor after the speech decoder is that they replace only a portion of the speech decoded output signal with a smoothed noise signal. Hence, the swirling problem is not solved in the remaining signal portion originating from the speech decoder and hence the final output signal is not shaped using the same LPC synthesis filter as the speech decoder output signal. This may lead to possible sound discontinuities especially during transitions from inactivity to active speech. In addition, such post processing methods are disadvantageous, as they require relatively high computational complexity.
None of the existing methods provides a solution to the problem that one of the reasons for swirling lies in spectral fluctuations of the excitation signal of the LPC synthesis filter. This problem becomes severe especially if the excitation signal is represented with too few bits, which is typically the case for speech codecs operating at bit rates of 12 kbps or lower.
Consequently, there is a need for methods and arrangements for alleviating the above-described problems with swirling caused by stationary background noise during periods of voice inactivity.